/*===============================================
*   文件名称：v4l2.h
*   创 建 者：  宋玲  
*   创建日期：2024年08月11日
*   描    述：
================================================*/
#ifndef _V4L2_H
#define _V4L2_H
#include <fcntl.h>
#include <linux/videodev2.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define BUFFER_COUNT 1 // 只需要一个缓冲区
// 定义缓冲区数量
//#define BUFFER_COUNT 1

// 延迟函数
void delay(int milliseconds);

// 打开视频设备
int open_video_device(const char *device_path);

// 查询设备能力
int query_capabilities(int fd);

// 列出支持的格式
int list_supported_formats(int fd);

// 设置视频格式
int set_video_format(int fd, int width, int height, int pixel_format);



// 请求缓冲区
int request_buffers(int fd, int count);

// 映射缓冲区
int map_buffers(int fd, unsigned char **buffers, unsigned int *sizes);

// 启动视频流
int start_stream(int fd);

// 读取视频帧
int read_frame(int fd, unsigned char *buffer, unsigned int size, FILE *file);

// 停止视频流
int stop_stream(int fd);

// 拍摄一张图片
int take_picture(const char *device_path, const char *output_file_path, int width, int height, int pixel_format) ;
#endif
